package com.lmf.spring5.aopanno;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Aspect     //spring自动生成代理对象
@Order(1)       //有多个增强类多同一个方法进行增强，设置增强类优先级；在增强类上面添加注解 @Order(数字类型值)，数字类型值越小优先级越高
public class PersonProxy {
    /**
     * @Before：（1）一般在具体某个方法上面使用
     *      （2）使用在某个方法上面，就表示将该方法作为增强方法，会作用到execution表达式中的某个方法上面。且会在在那个方法前面执行
     */
    @Before(value = "execution(* com.lmf.spring5.aopanno.User.add(..))")
    public void beforeDemo(){
        System.out.println("多个增强类：根据Order设置的优先级顺序进行，PersonProxy before ");
    }
}
